package com.szh.cloud.api.course.service.impl;

import com.szh.cloud.api.course.entity.SearCourseEntity;
import com.szh.cloud.api.course.repository.ApiCourseDao;
import com.szh.cloud.api.course.service.ApiCourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
 * 课程服务实现类
 */
@Service
public class ApiCourseServiceIml implements ApiCourseService {

    @Autowired
    private ApiCourseDao apiCourseDao;

    @Override
    public List<SearCourseEntity> queryCourseListByPage(Map<String, Object> params) {
        return apiCourseDao.queryCourseListByPage(params);
    }

    @Override
    public int queryCourseListTotal(Map<String, Object> params) {
        return apiCourseDao.queryCourseListTotal(params);
    }

    @Override
    public SearCourseEntity queryCourseByUuid(String courseUuid) {
        return apiCourseDao.queryCourseByUuid(courseUuid);
    }

    @Override
    @Transactional
    public boolean addCourse(SearCourseEntity course) {
        // 设置UUID
        course.setCourseUuid(UUID.randomUUID().toString().replace("-", ""));
        // 设置创建时间
        course.setCreateTime(new Date());
        // 设置为激活状态
        course.setIsActive(1);
        
        return apiCourseDao.addCourse(course) > 0;
    }

    @Override
    @Transactional
    public boolean updateCourse(SearCourseEntity course) {
        return apiCourseDao.updateCourse(course) > 0;
    }

    @Override
    @Transactional
    public boolean deleteCourse(List<String> courseUuids) {
        if (courseUuids == null || courseUuids.isEmpty()) {
            return false;
        }
        return apiCourseDao.deleteCourse(courseUuids) > 0;
    }

    @Override
    public List<SearCourseEntity> queryCoursesByClassUuid(String classUuid) {
        return apiCourseDao.queryCoursesByClassUuid(classUuid);
    }
}
